Anleitung zu Dvi2Dvi 0.8 (MsDos) 1989-1-4

Peter Sawatzki Buchenhof 3 5800 Hagen 1

                                                 FE617@DHAFEU11

Inhalt

1 Einleitung 2 2 Kommandoübersicht 2 3 Arbeitsweise von Dvi2Dvi 0.8 3 4 Die Parameter im Detail 3 5 Anwendungsbeispiele 5 6 Grenzen von Dvi2Dvi 0.8 6 7 Fehler 6

\underline{2 Dvi2Dvi 0.8}

1 Einleitung

Was macht Dvi2Dvi 0.8 ist ein Programm, das eine DVI Quelldatei in eine DVI Zielda-Dvi2Dvi 0.8 ? tei konvertiert, aber die Reihenfolge der Seiten in der Zieldatei sowie deren

Position verändern kann.

Das erste Programm, das so etwas konnte, war DVIDVI von Tom Rockiki. Leider konnte man damit auf einem MS-DOS Rechner nur DVI Dateien verarbeiten, die noch in den Arbeitspeicher paßten. Daher diese Version für MS-DOS Rechner, die beliebig große Dateien bearbeitet und außerdem noch die Möglichkeit bietet, auf vielfältige Weise Seiten auszuwählen.

Dvi2Dvi 0.8 ist ein Public Domain Programm.

Anwendungsgebiete

• Teilen einer DVI Datei in (z.B.) gerade und ungerade Seiten

• Auswählen bestimmter Seiten aus einer DVI Datei

• Sortiertes Ausgeben nach Seitenzahlen (sehr sinnvoll bei Plain TEX Dokumenten, die das Inhaltverzeichnis auf der letzten (DVI-) Seite haben wie z.B. alle “geweavten” WEBs)

• Verkehren der Reihenfolge, in der die Seiten in der DVI Datei abgelegt sind. Diese Eigenschaft ist wertvoll, wenn mit einem Drucker gearbeitet wird, der seine Blätter mit dem ’Gesicht’ nach oben ablegt, der DVI- Treiber dies aber nicht berücksichtigt: man erspart sich lästiges Seitenumordnen.

• Drucken mehrerer Seiten auf einem Blatt (wenn Drucker und DVI Treiber Querformat unterstuetzten, ist es relativ einfach möglich z.B. Faltbroschüren oder ein DIN-A5 Buch zu drucken.

2 Kommandoübersicht

Dvi2Dvi 0.8 erwartet genau drei Parameter:

Aufruf DVI2DVI (num/den)[Select]modulo:pagespecs Input Output

Input Input ist der Dateiname der Quell- DVI Datei. Auf diese Datei wird nur lesend zugegriffen. Die Dateierweiterung .DVI wird - falls nötig - angehängt.

Output Output ist der Dateiname der Ziel- DVI Datei. Auf diese Datei wird nur schreibend zugegriffen, eine etwa bestehende Datei gleichen Namens wird ohne Vorwarnung gelöscht. Die Dateierweiterung .DVI wird - falls nötig - an den Dateinamen angehängt.

modulo Schrittweite des Seitenzählers bzw. Größe des Seitenfensters

pagespecs welche Seite(n) aus dem Seitenfenster sollen (wie) in die Zieldatei übertragen werden ?

[Select] Dieser Parameter ist optional: nicht die ganze Quelldatei, sondern nur die in den eckigen Klammern angegebenen Seiten werden kopiert.

\underline{Dvi2Dvi 0.8 3}

Dies ist der wohl mächtigste Parameter, da der Seitenauswahl (fast) keine Grenzen gesetzt sind. So ist es z.B. einfach möglich, die DVI Datei nach Seitennummern aufsteigend oder absteigend sortiert zu übertragen, sie zu verdoppeln etc.

\underline{Achtung}: Wird [Select] angegeben, so wirkt sich die Angabe modulo:pagespecs nur auf die ausgewählten Seiten aus.

(num/den) Ebenfalls ein optionaler Parameter: es wird ein Bruch angegeben, z.B. (1/2). Diese Angabe bewirkt, daß die Quelldatei bzw. die ausgewählten Seiten nur zur Hälfte bearbeitet werden. Die Einführung dieses Parameters schien insbesondere für das Erzeugen von Büchern oder Faltbroschüren notwendig. Nur Brüche < 1 sind sinnvoll. Standardeinstellung ist (1/1).

3 Arbeitsweise von Dvi2Dvi 0.8

Dvi2Dvi 0.8 liest aus der Quelldatei zunächst alle Seiten aus. Die Seitennummern werden sortiert abgespeichert. Dann beginnt der Kopiervorgang Quelldatei ⟶ Zieldatei:

1. Es gibt zwei modulo große Arbeitsfenster. Das Arbeitsfenster 1 wird auf den Anfang der (selektieren) Seiten gerichtet, das Fenster 2 auf das Ende.

2. in der Zieldatei wird eine neue Seite begonnen

3. für alle durch pagespecs angegebenen Seitenspezifikationen wird folgendes getan:

• ist die gerade aktive Seitenangabe aus pagespecs positiv, so wird die Seite relativ zum Arbeitsfenster 1 gewählt. Ist die Seitenangabe aber negativ, wird die Seite relativ zum Arbeitsfenster 2 gewählt.

• beinhaltet die Seitenangabe eine Verschiebung so wird das in der Zieldatei entsprechend vermerkt.

• die Seite wird in die Zieldatei kopiert

4. Die Seite wird abgeschlossen

5. Das Arbeitfenster 1 wird um modulo Seiten in Richtung der letzten Seiten verschoben, das Fenster 2 entsprechend in Richtung Anfang.

6. Wenn das Arbeitsfenster 1 noch nicht den (num/den)-ten Teil der Seiten überschritten hat, wird bei 2 fortgefahren, sonst wird abgebrochen.

4 Die Parameter im Detail

modulo und pagespecs sind im einfachsten Fall beide eins, dann wird eine modulo und pagespecs

1:1 Übertragung durchgeführt:

DVI2DVI 1:1 eingabe ausgabe

Um in der Zieldatei die Seiten in der umgekehrten Reihenfolge zu erhalten, gibt man für pagespecs eine negative Zahl an:

DVI2DVI 1:-0 eingabe ausgabe

Die Angabe ‘0’ für pagespecs ist besser als ‘1’, da intern alle Werte auf einen Wert < modulo begrenzt werden. Bei einer eins zu eins Übertragung sieht die eins aber schöner aus.

Die Angabe für pagespecs ist aber nicht auf eine Seitenangabe beschränkt: wird mehr als eine Seite angeführt, so werden all diese Seiten in der Zieldatei auf einer Seite (Blatt) zusammengefaßt.

Die Angaben werden durch Komma getrennt:

DVI2DVI 2:0,1 eingabe ausgabe

In diesem Fall werden immer zwei Seiten aus der Quelldatei auf einer Seite in der Zieldatei zusammengefaßt. Die beiden Seiten würden natürlich übereinandergedruckt. Deshalb kann man für jede Seite noch eine Verschiebung angeben:

DVI2DVI 2:0(-3pt,0cm),1(10cm,1mm) eingabe ausgabe

Würde man die Datei ausgabe drucken, so erscheint die erste Seite um drei Punkte nach links verschoben zusammen mit der zweiten Seite, die um zehn Zentimeter nach rechts und einen Millimeter nach unten verschoben ist. Bei der dritten Seite verhält es sich wie mit der ersten, bei der vierten wie mit der zweiten usw. (Die Seiten sollten natürlich entsprechend schmal sein.)

\underline{Bemerkung:} Zugelassen sind die Einheiten: cm, cc, pt, pc, mm, sp, bp, in und dd.

Um eine DVI Datei in gerade und ungerade Seiten zu zerlegen, muß Dvi2Dvi 0.8 zweimal auf die Eingabedatei angewendet werden:

DVI2DVI 2:1 eingabe ausgabe1 und
DVI2DVI 2:0 eingabe ausgabe2

(num/den) (num/den) ist weiter oben hinreichend erklärt.

[Select] Im einfachsten Fall wird eine Seite angegeben. Es können aber auch mehrere Seiten und Seitenbereiche angegeben werden.

Für die Angabe einer Seite hat man vier verschiedene Möglichkeiten:

(n,x sind ganze Zahlen; eckige Klammern werden benutzt, wenn etwas wahlweise angegeben werden kann)

Seitenzahlen [-]n Es ist n-te Seite aus der DVI-Datei gemeint, falls ‘-’ angegeben ist, dann ist die n-letzte Seite gemeint. ![-]n Die Seiten werden wie oben schon angedeutet sortiert. Bei dieser Angabe ist die n-te sortierte bzw. die n-letzte sortierte Seite gemeint. #[-]n[.x] Es ist die Seite mit der Seitenzahl n gemeint. Gibt es in der DVI Datei mehrere Seiten mit der gleichen Seitenzahl, so können Sie voneinander durch die Angabe von ‘.x’ (der Gruppennummer) unterschieden werden. 2.1 ist beispielweise die (physikalisch) erste Seite mit der Seitenzahl 2, 2.2 die zweite usw. Übrigens haben alle Seiten nach 2.2 auch die Erweiterung “.2”, bzw. eine grössere Gruppennummer. Achtung: die so angegebene Seite muß existieren, sonst erfolgt ein Abbruch. * Bei der Angabe eines Sternchens wird eine Leerseite forciert.

Beispiele:

[2] die zweite Seite in der DVI Datei ist gemeint

[#2] die Seite mit der Seitenzahl zwei

[!2] die zweite Seite der sortierten Seiten

[-2] die zweitletzte Seite in der DVI Datei

[#-2] die Seite mit der Seitenzahl -2

[#-5.4] die vierte Seite mit der Seitenzahl -5

[!-3] die drittletzte Seite der sortierten Seiten

Mehrere Seiten können angegeben werden, indem sie durch Komma getrennt werden:

[#1.1,#2,#-3,1] erst die erste Seite 1, dann Seite 2, Seite -3 und zuletzt die erste Seite in der DVI Datei. Natürlich können hier Seiten doppelt angegeben sein, z.B. kann “1” die gleiche Seite wie “#1.1” sein, aber das ist abhängig von der DVI Datei.

Seitenbereiche Seitenbereiche können auf zwei Arten bestimmt werden:

(p_{1} und p_{2} sind Seitenzahlen, wie oben beschrieben) p_{1} p_{2} Seite p_{1} bis Seite p_{2} in der Reihenfolge, wie die Seiten in der Quelldatei auftauchen. p_{1} kann durchaus grösser als p_{2} sein. p_{1}..p_{2} Die Seiten p_{1} bis p_{2} werden in der sortierten Reihenfolge abgearbeitet. Auch hier kann p_{1} (im Sinne der Sortierung) grösser als p_{2} sein.

Beispiele

[1 3,!-1] die DVI Seiten 1,2,3 und die letzte Seite der Sortierung

[1..4,7..5] die DVI Seite 1, die (nach der Sortierung) nächst grössere, usw., die DVI Seite 4; entsprechend 7, die nächst kleinere, usw., die Seite 5.

[!1..!-1] alle Seiten, aufsteigend sortiert

[!-1..!2] alle Seiten mit Ausnahme der ersten, in umgekehrter Reihenfolge

[1 -1] alle Seiten in der Reihenfolge, wie sie in der Quelldatei auftauchten

5 Anwendungsbeispiele

doppelseitig (für Drucker, die ihr Papier ‘face-up’ ablegen) DVI2DVI 2:0 eingabe vorder für die Vorderseiten, vorder.dvi für den Drucker aufbereiten und ausdrucken. Papier umdrehen, dann

DVI2DVI 2:1(6mm,0pt) eingabe rueck und rueck.dvi aufbereiten und

drucken. Bei Druckern, die Ihr Papier ‘face-down’ ablegen, sieht der zweite Aufruf so aus:

DVI2DVI 2:-1(6mm,0pt) eingabe rueck

Buch (Voraussetzungen: TEX Seite sollte entsprechen klein sein, der DVI Treiber und der Drucker sollten landscape ‘fähig’ sein.)

DVI2DVI (1/2)2:-1(-.6cm,-1.5cm),0(13.5cm,-1.5cm) eingabe
vorder
DVI2DVI (1/2)2:1(-.6cm,-1.5cm),-0(13.5cm,-1.5cm) eingabe rueck

6 Grenzen von Dvi2Dvi 0.8

• DVI Dateien dürfen beliebig groß sein

• eine DVI- Datei darf maximal 3500 Seiten enthalten

• die Seitenzahlen müssen im Bereich -32768 bis 32767 liegen

• modulo darf maximal den Wert 32 annehmen

• bei pagespecs dürfen maximal 32 Seiten angegeben werden

7 Fehler

Mir sind bisher keine Fehler bekannt. Sollten Fehler auftauchen, so können Sie Ihr Geld nicht zurückverlangen da Dvi2Dvi 0.8 ein Public Domain Programm ist. Sie können mir aber eine Fehlerbeschreibung und möglichst auch Ihre DVI Datei schicken, ich versuche dann den Fehler zu beheben. Mit dem beiliegenden Programm DVITYPE können Sie DVI Dateien aber auch selbst untersuchen, vielleicht wird das eine oder andere Problem schon dadurch gelöst. Verbesserungsvorschläge sind jederzeit willkommen.